During processing, it is imperative that a consistent view of the memory be provided to the processors accessing that memory. In environments that are architected with a weak memory consistency, specific steps must be taken to ensure memory consistency. For instance, in weak memory consistency environments, the order of updates of a particular unit of memory is not guaranteed, as observed by other processors. Thus, software running on a weak memory consistency environment must tolerate the ambiguity or use instructions to explicitly force the consistency. That is, each time a memory store is executed, synchronization is performed before another memory access is allowed. The use of instructions to force consistency, however, seriously degrades system performance.
In contrast to a weak memory consistent environment, some environments are architected with a firm memory consistency. In such environments, hardware is provided to maintain the consistency of the memory.